package Day12.Hashcode;

/**
 * @author hyhWTX
 * @version 1.0
 * @ClassName Demo01HashCode
 * @date 2022年07月09日 16:06
 * @Description: hashCode案例示范
 */
/**
 * hashCode()方法的源码：
 *  public native int hashCode();
 *  native:代表该方法调用的是本地操作系统的方法。
 */
public class Demo01HashCode {
    public static void main(String[] args) {
        //Person类继承Object类，所以可以使用Object里面的hashcode方法
        Person p1 = new Person();
        int h1 = p1.hashCode();
        System.out.println(h1);//21685669

        Person p2 = new Person();
        int h2 = p2.hashCode();
        System.out.println(h2);//2133927002

        /**
         * toString方法的源码
         *  return getClass().getName() + "@" + Integer.toHexString(hashCode());
         *
         */
        System.out.println(p1);//Day12.Hashcode.Person@14ae5a5

        System.out.println(p2);//Day12.Hashcode.Person@7f31245a

        System.out.println(p1==p2);

        /**
         *String类的哈希值
         *  String类重写Object类的hashCode方法
         *
         */
        String s1 = new String("abc");
        String s2 = new String("abc");
        System.out.println(s1.hashCode());
        System.out.println(s2.hashCode());

        System.out.println("重地".hashCode());
        System.out.println("通话".hashCode() );

    }
}
